Pisortat aningaasaataat


Atorfillit
OFXOA1_raw <- 
  statgl_url("OFXOA1", lang = language) %>% 
  statgl_fetch(
    taar        = px_top(),
    cofog_hoved = px_all(),
    opg_var     = "F",
    .col_code   = TRUE
  ) %>% 
  as_tibble()

OFXOA1 <- 
  OFXOA1_raw %>% 
  mutate(
    cofog_hoved = cofog_hoved %>% str_remove_all("[:digit:]|\\.") %>% trimws(),
    cofog_hoved = cofog_hoved %>% fct_reorder(value, .fun = sum, .desc = TRUE)
    ) %>% 
  spread(opg_var, value) %>% 
  arrange(cofog_hoved)

OFXOA1 %>% 
  select(-taar) %>% 
  rename(" " = 1) %>% 
  statgl_table(replace_0s = TRUE) %>% 
  pack_rows(index = OFXOA1[["taar"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Piffissaq tamakkerlugu sulisut
2023
Tamakkerlugit 11.212
Inuiaqatigiit illersugaanerat 4.625
Ilinniartitsineq 2.362
Peqqinnissaqarfik 1.668
Pisortat nalinginnaasumik kiffartuussinerat 1.291
Aningaasaqarnermut tunngasut 602
Sunngiffik, kulturi upperisarlu 339
Avatangiisit innarlitsaaliorneqarnerat 263
Inuiaqatigiinni toqqissisimaneq isumannaassuserlu 35
Inissiat tamanillu orninneqarsinnaasut 28
Illersornissaq 0


Se Statistikbankens tabel: OFXOA1

Kommunini naatsorsuutit


#OFXUKN1_raw <- 
#  statgl_url("OFXUKN1", lang = language) %>%
#  statgl_fetch(
#    time       = px_top(),
#    district   = c("000", "955", "956", "957", "958", "959", "960"),
#    keyfigures = px_all(),
#    .col_code  = TRUE
#  ) %>% 
#  as_tibble()
#
#OFXUKN1 <- 
#  OFXUKN1_raw %>% 
#  filter(value != "NA") %>% 
#  mutate(
#    keyfigures = keyfigures %>% fct_inorder(),
#    district = district %>% fct_reorder(value, .fun = sum, .desc = TRUE)
#  ) %>% 
#  spread(district, value)
#
#OFXUKN1 %>% 
#  select(-time) %>% 
#  rename(" " = 1) %>% 
#  statgl_table() %>% 
#  pack_rows(index = OFXUKN1[["time"]] %>% table())


# Skal ordne kom så det kun er kommuner og ikke byer med
OFXUKN1_raw <- 
  statgl_url("OFXUKN1", lang = language) |> 
  statgl_fetch(
    kom        = c("AAA", "955", "956", "957", "959", "960"),
    inst_type2 = "A",
    aar        = px_top(),
    born_var   = px_all(),
    .col_code  = T
  ) |> 
  as_tibble()

OFXUKN1 <- 
  OFXUKN1_raw |> 
  mutate(value = case_when(is.na(value) ~ 0, T ~ value)) |> 
  spread(kom, value)

OFXUKN1 |>
  select(-c(inst_type2, aar)) |> 
  rename(" " = 1) |> 
  statgl_table() |> 
  pack_rows(index = OFXUKN1[["aar"]] |> table())
Avannaata Kommunia Kommune Kujalleq Kommune Qeqertalik Kommuneqarfik Sermersooq Kommunit tamakkerlutik Qeqqata Kommunia
2024
Meeqqat 0,5-inik ukiullit 37,0 18,0 18,0 94,0 211,0 44,0
Meeqqat 1-inik ukiullit 119,0 61,0 62,0 259,0 630,0 129,0
Meeqqat 2-nik ukiullit 99,0 73,0 61,0 300,0 664,0 131,0
Meeqqat 3-5-inik ukiullit allatsissimasut amerlassusaat (pct.) 89,7 86,5 89,2 87,6 89,7 97,5
Meeqqat 3-nik ukiullit 148,0 84,0 62,0 308,0 730,0 128,0
Meeqqat 4-inik ukiullit 130,0 72,0 96,0 301,0 743,0 144,0
Meeqqat 5-inik ukiullit 157,0 69,0 73,0 288,0 710,0 123,0
Meeqqat ulluunerani neqeroorutiniittut tamakkerlutik 690,0 377,0 372,0 1.550,0 3.688,0 699,0
Ulluunerani neqeroorutit 38,0 15,0 20,0 50,0 152,0 29,0


Se Statistikbankens tabel: OFXUKN1

Pisortat aningaasaataat
OFXFUNK_raw <- 
  statgl_url("OFXFUNK", lang = language) %>%
  statgl_fetch(
    time       = px_top(),
    sector     = 0,
    "function" = c(0, 1, 8, 11, 17, 25, 29, 33, 39, 44, 50),
    .col_code  = TRUE
  ) %>% 
  as_tibble()

OFXFUNK <- 
  OFXFUNK_raw %>% 
  mutate(
    `function` = `function` %>% 
      str_remove_all("[:digit:]|\\.") %>% 
      trimws() %>% 
      fct_reorder(value, .fun = sum, .desc = TRUE)
    ) %>% 
  spread(sector, value)

OFXFUNK %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = OFXFUNK[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE) |> 
  add_footnote("i 1.000 kr.", notation = "symbol")
Pisortat ingerlataqarfii tamarmiusut
2024
Katillugit 14.278.278
Inuiaqatigiit illersugaanerat 4.124.427
Ilinniartitsineq 2.219.922
Peqqinnissaqarfik 2.000.581
Nalinginnaasumik pisortat kiffartuussineri 1.863.386
Aningaasaqarnermut tunngasut 1.322.269
Inuiaqatigiinni toqqissisimaneq isumannaassuserlu 1.217.374
Sunngiffik, kulturi upperisarlu 492.237
Inissiat tamanillu orninneqarsinnaasut 387.117
Illersornissaq 360.421
Avatangiisit innarlitsaaliorneqarnerat 290.544
* i 1.000 kr.


Se Statistikbankens tabel: OFXFUNK

OFXREAI_raw <- 
  statgl_url("OFXREAI", lang = language) %>%
  statgl_fetch(
    sector      = 0,
    transaction = c(0, 1, 2, 5, 8, 12, 13, 14, 15, 16, 29, 30, 31, 42, 43),
    time        = px_top(),
    .col_code   = TRUE
  ) %>% 
  as_tibble()

OFXREAI <- 
  OFXREAI_raw %>% 
  mutate(
    transaction = transaction %>% str_remove_all("[:digit:]|\\+|\\(|\\)") %>% trimws() %>% fct_inorder()
    ) %>% 
  mutate_if(is.integer, replace_na, replace = 0) %>% 
  filter(value != 0) %>% 
  spread(sector, value)
  
  
OFXREAI %>% 
  select(-time) %>% 
  arrange(desc(transaction)) %>% 
  rename(" " = 1) %>% 
  statgl_table(replace_0s = TRUE) %>% 
  pack_rows(index = OFXREAI[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE) |> 
  add_footnote("i 1.000 kr.", notation = "symbol")
Pisortat ingerlataqarfii tamarmiusut
2024
Ingerlatsinermi aningaasaatiniillu isertitat katillugit 14.828.223
Ingerlats isertitat 14.828.223
Nuussinerit allat ingerlaavartut 6.468.460
Isertitanit pigisanillu akileraarutit 5.724.369
Tunisassiornermi eqqussuinermilu akileraarutit 1.450.297
Erniat iluanaarutillu 346.407
Pisortat suliffeqarfiutaat piginneqataaffiunngitsut 53.783
Isertitat sinneruttut tamarmiusut 784.907
* i 1.000 kr.


Se Statistikbankens tabel: OFXREAI

Nunatta karsiata naatsorsuutai


Tabellerne er for store. Se statistikbanken under Offentlige finanser, regnskabstal for landskassen.


Sidst opdateret: 10. november 2025
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQoNCmxhbmd1YWdlICA8LSBwYXJhbXMkbGFuZw0Kb3B0aW9uICAgIDwtIHBhc3RlMCgiP2xhbmc9IiwgbGFuZ3VhZ2UsICImc2VsZWN0IikNCmxvZ28gICAgICA8LSBwYXN0ZTAoZ2V0d2QoKSwiL2FkZC9sb2dvLmdpZiIpDQp0eHQgICAgICAgPC0gcmVhZF95YW1sKHBhc3RlMChnZXR3ZCgpLCAiL2FkZC90eHQueW1sIiksIGZpbGVFbmNvZGluZyA9ICJJU08tODg1OS0xIikNCnNvdXJjZSAgICA8LSB0eHQkc291cmNlW2xhbmd1YWdlXSAlPiUgdW5saXN0KCkNCg0KeGFyaW5nYW5FeHRyYTo6dXNlX2NsaXBib2FyZCgpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQoNCi5hY2NvcmRpb24gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5OTAwOw0KICBjb2xvcjogd2hpdGU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgcGFkZGluZzogMThweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJvcmRlcjogbm9uZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBvdXRsaW5lOiBub25lOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IDAuNHM7DQp9DQoNCi5hY3RpdmUsIC5hY2NvcmRpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjk3MjQyOw0KfQ0KDQouYWNjb3JkaW9uOmFmdGVyIHsNCiAgY29udGVudDogJ1wwMDJCJzsNCiAgY29sb3I6ICM3Nzc7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmbG9hdDogcmlnaHQ7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQp9DQoNCi5hY3RpdmU6YWZ0ZXIgew0KICBjb250ZW50OiAiXDIyMTIiOw0KfQ0KDQoucGFuZWwgew0KICBwYWRkaW5nOiAwcHggNXB4IDBweCA1cHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBtYXgtaGVpZ2h0OiAwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7DQp9DQoNCmRldGFpbHMgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KZGV0YWlscyA+IHN1bW1hcnkgew0KICBwYWRkaW5nOiA0cHggMTJweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDdmOTk7DQogIGJvcmRlcjogc29saWQ7DQogIGJvcmRlci1jb2xvcjogd2hpdGU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiB3aGl0ZTsNCn0NCg0KZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhNDFhOw0KfQ0KDQoNCi50aXRsZSB7DQogIGNvbG9yOiAjMWI1NDYzOw0KICBmb250LXNpemU6IDM2cHg7DQp9DQoNCg0KLnBlcnNvbmVyIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDQ0NTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLsO4a29ub21pIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDdGOTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDFweDsNCiAgcGFkZGluZy1ib3R0b206IDAuMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLnR2w6ZyZ8OlZW5kZSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjZmFhNDFhOw0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5jb250YWluZXIgew0KICB3aWR0aDogaW5oZXJpdDsNCn0NCg0KLnNjcm9sbC0xMDAgew0KICBtYXgtaGVpZ2h0OiAxMDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQp9DQoNCg0KcHJlIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCnByZVtjbGFzc10gew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCn0NCg0KYGBgDQoNCjxicj4NCjxicj4NCg0KPGNlbnRlcj4NCg0KLS0tDQogDQojIFtgciB0eHQkT0YkdGl0bGVbbGFuZ3VhZ2VdYF17LnRpdGxlfQ0KIA0KLS0tDQo8L2NlbnRlcj4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkT0Ykc3ViMVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMTogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJPRlhPQTEiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KYGBge3IgT0ZYT0ExfQ0KDQpPRlhPQTFfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJPRlhPQTEiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JSANCiAgc3RhdGdsX2ZldGNoKA0KICAgIHRhYXIgICAgICAgID0gcHhfdG9wKCksDQogICAgY29mb2dfaG92ZWQgPSBweF9hbGwoKSwNCiAgICBvcGdfdmFyICAgICA9ICJGIiwNCiAgICAuY29sX2NvZGUgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCk9GWE9BMSA8LSANCiAgT0ZYT0ExX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICBjb2ZvZ19ob3ZlZCA9IGNvZm9nX2hvdmVkICU+JSBzdHJfcmVtb3ZlX2FsbCgiWzpkaWdpdDpdfFxcLiIpICU+JSB0cmltd3MoKSwNCiAgICBjb2ZvZ19ob3ZlZCA9IGNvZm9nX2hvdmVkICU+JSBmY3RfcmVvcmRlcih2YWx1ZSwgLmZ1biA9IHN1bSwgLmRlc2MgPSBUUlVFKQ0KICAgICkgJT4lIA0KICBzcHJlYWQob3BnX3ZhciwgdmFsdWUpICU+JSANCiAgYXJyYW5nZShjb2ZvZ19ob3ZlZCkNCg0KT0ZYT0ExICU+JSANCiAgc2VsZWN0KC10YWFyKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZShyZXBsYWNlXzBzID0gVFJVRSkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBPRlhPQTFbWyJ0YWFyIl1dICU+JSB0YWJsZSgpKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKQ0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIk9GWE9BMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvMjQ5NTZmNjItNWQwMy00ZjkwLTkwMTAtY2M4ZTQ2ZDEzOTFmIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KPC9kZXRhaWxzPg0KDQo8ZGV0YWlscz4gPHN1bW1hcnk+IGByIHR4dCRPRiRzdWIyW2xhbmd1YWdlXWAgPC9zdW1tYXJ5Pg0KPGJyPg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJPRlhVS04xIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgT0ZYVUtOMX0NCg0KI09GWFVLTjFfcmF3IDwtIA0KIyAgc3RhdGdsX3VybCgiT0ZYVUtOMSIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lDQojICBzdGF0Z2xfZmV0Y2goDQojICAgIHRpbWUgICAgICAgPSBweF90b3AoKSwNCiMgICAgZGlzdHJpY3QgICA9IGMoIjAwMCIsICI5NTUiLCAiOTU2IiwgIjk1NyIsICI5NTgiLCAiOTU5IiwgIjk2MCIpLA0KIyAgICBrZXlmaWd1cmVzID0gcHhfYWxsKCksDQojICAgIC5jb2xfY29kZSAgPSBUUlVFDQojICApICU+JSANCiMgIGFzX3RpYmJsZSgpDQojDQojT0ZYVUtOMSA8LSANCiMgIE9GWFVLTjFfcmF3ICU+JSANCiMgIGZpbHRlcih2YWx1ZSAhPSAiTkEiKSAlPiUgDQojICBtdXRhdGUoDQojICAgIGtleWZpZ3VyZXMgPSBrZXlmaWd1cmVzICU+JSBmY3RfaW5vcmRlcigpLA0KIyAgICBkaXN0cmljdCA9IGRpc3RyaWN0ICU+JSBmY3RfcmVvcmRlcih2YWx1ZSwgLmZ1biA9IHN1bSwgLmRlc2MgPSBUUlVFKQ0KIyAgKSAlPiUgDQojICBzcHJlYWQoZGlzdHJpY3QsIHZhbHVlKQ0KIw0KI09GWFVLTjEgJT4lIA0KIyAgc2VsZWN0KC10aW1lKSAlPiUgDQojICByZW5hbWUoIiAiID0gMSkgJT4lIA0KIyAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KIyAgcGFja19yb3dzKGluZGV4ID0gT0ZYVUtOMVtbInRpbWUiXV0gJT4lIHRhYmxlKCkpDQoNCg0KIyBTa2FsIG9yZG5lIGtvbSBzw6UgZGV0IGt1biBlciBrb21tdW5lciBvZyBpa2tlIGJ5ZXIgbWVkDQpPRlhVS04xX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiT0ZYVUtOMSIsIGxhbmcgPSBsYW5ndWFnZSkgfD4gDQogIHN0YXRnbF9mZXRjaCgNCiAgICBrb20gICAgICAgID0gYygiQUFBIiwgIjk1NSIsICI5NTYiLCAiOTU3IiwgIjk1OSIsICI5NjAiKSwNCiAgICBpbnN0X3R5cGUyID0gIkEiLA0KICAgIGFhciAgICAgICAgPSBweF90b3AoKSwNCiAgICBib3JuX3ZhciAgID0gcHhfYWxsKCksDQogICAgLmNvbF9jb2RlICA9IFQNCiAgKSB8PiANCiAgYXNfdGliYmxlKCkNCg0KT0ZYVUtOMSA8LSANCiAgT0ZYVUtOMV9yYXcgfD4gDQogIG11dGF0ZSh2YWx1ZSA9IGNhc2Vfd2hlbihpcy5uYSh2YWx1ZSkgfiAwLCBUIH4gdmFsdWUpKSB8PiANCiAgc3ByZWFkKGtvbSwgdmFsdWUpDQoNCk9GWFVLTjEgfD4NCiAgc2VsZWN0KC1jKGluc3RfdHlwZTIsIGFhcikpIHw+IA0KICByZW5hbWUoIiAiID0gMSkgfD4gDQogIHN0YXRnbF90YWJsZSgpIHw+IA0KICBwYWNrX3Jvd3MoaW5kZXggPSBPRlhVS04xW1siYWFyIl1dIHw+IHRhYmxlKCkpDQoNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIk9GWFVLTjEiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxL2NhM2M0MjEzLTRhYWItNGYxNi05Y2RiLTczOGY1YzFlOTkxNSIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQoNCg0KPC9kZXRhaWxzPg0KDQo8ZGV0YWlscz4gPHN1bW1hcnk+IGByIHR4dCRPRiRzdWIzW2xhbmd1YWdlXWAgPC9zdW1tYXJ5PiANCjxicj4NCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAzOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIk9GWEZVTksiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBPRlhGVU5LfQ0KDQpPRlhGVU5LX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiT0ZYRlVOSyIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lDQogIHN0YXRnbF9mZXRjaCgNCiAgICB0aW1lICAgICAgID0gcHhfdG9wKCksDQogICAgc2VjdG9yICAgICA9IDAsDQogICAgImZ1bmN0aW9uIiA9IGMoMCwgMSwgOCwgMTEsIDE3LCAyNSwgMjksIDMzLCAzOSwgNDQsIDUwKSwNCiAgICAuY29sX2NvZGUgID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KT0ZYRlVOSyA8LSANCiAgT0ZYRlVOS19yYXcgJT4lIA0KICBtdXRhdGUoDQogICAgYGZ1bmN0aW9uYCA9IGBmdW5jdGlvbmAgJT4lIA0KICAgICAgc3RyX3JlbW92ZV9hbGwoIls6ZGlnaXQ6XXxcXC4iKSAlPiUgDQogICAgICB0cmltd3MoKSAlPiUgDQogICAgICBmY3RfcmVvcmRlcih2YWx1ZSwgLmZ1biA9IHN1bSwgLmRlc2MgPSBUUlVFKQ0KICAgICkgJT4lIA0KICBzcHJlYWQoc2VjdG9yLCB2YWx1ZSkNCg0KT0ZYRlVOSyAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IE9GWEZVTktbWyJ0aW1lIl1dICU+JSB0YWJsZSgpKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKSB8PiANCiAgYWRkX2Zvb3Rub3RlKCJpIDEuMDAwIGtyLiIsIG5vdGF0aW9uID0gInN5bWJvbCIpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiT0ZYRlVOSyIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvOTNiMTk4ZTktMjcwZi00MWVhLTk4MjgtMmU0Y2YyZWM2MjNmIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgNDogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJPRlhSRUFJIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgT0ZYUkVBSX0NCg0KT0ZYUkVBSV9yYXcgPC0gDQogIHN0YXRnbF91cmwoIk9GWFJFQUkiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JQ0KICBzdGF0Z2xfZmV0Y2goDQogICAgc2VjdG9yICAgICAgPSAwLA0KICAgIHRyYW5zYWN0aW9uID0gYygwLCAxLCAyLCA1LCA4LCAxMiwgMTMsIDE0LCAxNSwgMTYsIDI5LCAzMCwgMzEsIDQyLCA0MyksDQogICAgdGltZSAgICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCk9GWFJFQUkgPC0gDQogIE9GWFJFQUlfcmF3ICU+JSANCiAgbXV0YXRlKA0KICAgIHRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb24gJT4lIHN0cl9yZW1vdmVfYWxsKCJbOmRpZ2l0Ol18XFwrfFxcKHxcXCkiKSAlPiUgdHJpbXdzKCkgJT4lIGZjdF9pbm9yZGVyKCkNCiAgICApICU+JSANCiAgbXV0YXRlX2lmKGlzLmludGVnZXIsIHJlcGxhY2VfbmEsIHJlcGxhY2UgPSAwKSAlPiUgDQogIGZpbHRlcih2YWx1ZSAhPSAwKSAlPiUgDQogIHNwcmVhZChzZWN0b3IsIHZhbHVlKQ0KICANCiAgDQpPRlhSRUFJICU+JSANCiAgc2VsZWN0KC10aW1lKSAlPiUgDQogIGFycmFuZ2UoZGVzYyh0cmFuc2FjdGlvbikpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKHJlcGxhY2VfMHMgPSBUUlVFKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IE9GWFJFQUlbWyJ0aW1lIl1dICU+JSB0YWJsZSgpKSAlPiUgDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUUlVFKSB8PiANCiAgYWRkX2Zvb3Rub3RlKCJpIDEuMDAwIGtyLiIsIG5vdGF0aW9uID0gInN5bWJvbCIpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiT0ZYUkVBSSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvOGQ4MDQ3MWUtM2VjNy00NGUwLWE0M2QtYjdjYzhmMGEyMmRiIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCiANCg0KPC9kZXRhaWxzPiANCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkT0Ykc3ViNFtsYW5ndWFnZV1gIDwvc3VtbWFyeT4NCg0KPGJyPg0KVGFiZWxsZXJuZSBlciBmb3Igc3RvcmUuIFNlIHN0YXRpc3Rpa2JhbmtlbiB1bmRlciBPZmZlbnRsaWdlIGZpbmFuc2VyLCByZWduc2thYnN0YWwgZm9yIGxhbmRza2Fzc2VuLg0KDQo8L2RldGFpbHM+IA0KDQoNCjxociBzdHlsZT0iYm9yZGVyOjFweCByaWRnZSBsaWdodGdyYXkiPiA8L2hyPg0KPGNlbnRlcj4gPHNwYW4gc3R5bGU9J2NvbG9yOiNEM0QzRDM7IGZvbnQtc2l6ZTo5MCU7Jz4gYHIgcGFzdGUodHh0JHVwZGF0ZVtsYW5ndWFnZV0sIGZvcm1hdChTeXMuRGF0ZSgpLCAiJWQuICVCICVZIikpYCA8L3NwYW4+IDwvY2VudGVyPg0KDQoNCg0KDQo8c2NyaXB0Pg0KdmFyIGFjYyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFjY29yZGlvbiIpOw0KdmFyIGk7DQoNCmZvciAoaSA9IDA7IGkgPCBhY2MubGVuZ3RoOyBpKyspIHsNCiAgYWNjW2ldLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7DQogICAgdGhpcy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiKTsNCiAgICB2YXIgcGFuZWwgPSB0aGlzLm5leHRFbGVtZW50U2libGluZzsNCiAgICBpZiAocGFuZWwuc3R5bGUubWF4SGVpZ2h0KSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBudWxsOw0KICAgIH0gZWxzZSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBwYW5lbC5zY3JvbGxIZWlnaHQgKyAicHgiOw0KICAgIH0gDQogIH0pOw0KfQ0KPC9zY3JpcHQ+DQo=